// 商品规格

import { defineStore } from 'pinia'
import { getSpecsApi,getSpecsTotalApi,addSpecsApi,delSpecsApi,editSpecsApi } from '../api/specsApi'
import { ElMessage } from 'element-plus'

const useSpecsStore = defineStore('specs', {
  state: () => {
    return {
      page: 1, // 页码
      size: 10, // 每页条数
      total: 0, // 总数
      specsList: [], // 数据列表
      dialogVisible: false, // 对话框
      allSpecsList: [] // 所有数据
    }
  },
  actions: {
    // 分页获取规格数据
    getSpecsAction() {
      getSpecsApi(this.page,this.size).then(res => {
        // console.log(res,'规格数据-----')
        if(res.code === 200) {
          this.specsList = res.list
        } else {
          console.log(res.msg,'规格数据获取失败------')
        }
      })
    },
    // 获取规格所有数据
    getSpecsAllAction() {
      getSpecsApi().then(res => {
        // console.log(res,'所有规格数据-----')
        if(res.code === 200) {
          this.allSpecsList = res.list
        } else {
          console.log(res.msg,'所有规格数据获取失败------')
        }
      })
    },
    // 获取规格总数
    getSpecsTotalAction() {
      getSpecsTotalApi().then(res => {
        // console.log(res,'规格总数-------')
        if(res.code === 200) {
          this.total = res.list[0].total
        }
      })
    },
    // 修改页码
    changePage(page) {
      this.page = page
    },
    // 修改条数
    changeSize(size) {
      this.size = size
    },
    // 新增
    addSpecsAction(data) {
      addSpecsApi(data).then(res => {
        // console.log(res,'新增规格-------')
        if(res.code === 200) {
          ElMessage({
            type: 'success',
            message: '新增成功'
          })
          // 重新获取数据
          this.getSpecsAction()
        } else {
          ElMessage({
            type: 'error',
            message: res.msg
          })
        }
      })
    },
    // 删除
    delSpecsAction(id) {
      delSpecsApi(id).then(res => {
        // console.log(res,'删除规格--------')
        if(res.code === 200) {
          ElMessage({
            type: 'success',
            message: '删除成功'
          })
          // 重新获取数据
          this.getSpecsAction()
        } else {
          ElMessage({
            type: 'error',
            message: res.msg
          })
        }
      })
    },
    // 编辑
    editSpecsAction(data) {
      editSpecsApi(data).then(res => {
        // console.log(res,'编辑规格-------')
        if(res.code === 200) {
          ElMessage({
            type: 'success',
            message: '编辑成功'
          })
          // 重新获取数据
          this.getSpecsAction()
        } else {
          ElMessage({
            type: 'error',
            message: res.msg
          })
        }
      })
    },
    // 关闭对话框
    closeDialog() {
      this.dialogVisible = false
    },
    // 打开对话框
    openDialog() {
      this.dialogVisible = true
    }
  }
})

export default useSpecsStore
